Font delivery service

ABSTRACT

A method, system, and architecture for a font service and a software development kit (SDK) to provide developers with the means to design user-interfaces and content using a wide variety of font typefaces. The SDK may download a font from a font service as needed and activate the font to be rendered in the software application&#39;s user interface or other textual content within the application. A subscription service may be provided which comprises user account information or other data relating to permissions for one or more client devices to access one or more font files located in a font library. Further, one or more font files may be optimized according to an operating system in which the target application is operating and/or a screen resolution of a client device on which the target application is operating.

TECHNICAL FIELD

Aspects of the present disclosure relate to delivering one or more fontsfor use in an application. For example, some aspects of the presentdisclosure relate to a font service and a software development kit usedto deliver a variety of font typefaces for software applications.

BACKGROUND

Operating systems installed on desktop computers, laptop computers,tablets, mobile phones, and the like, comprise a limited number ofpreloaded system fonts. Thus, developers of applications ultimately usedin these operating systems have a limited number of fonts to choose fromwhen coding for user interfaces and/or other textual content renderedwithin the applications. The number of fonts from which these developersmay choose from is particularly limited when an application willultimately be installed on mobile devices. That is, because storagecapacity on these mobile devices may be more limited as compared to,e.g., desktop computers, these devices may have a more limited number ofsystem fonts installed for a developer to choose from.

Accordingly, there remains a need to provide software developers and thelike with expanded font options that may be used in applications,particularly with respect to applications ultimately installed on mobiledevices. Further, there remains a need to optimize delivered font filesaccording to a target device in order to reduce bandwidth and/or storagecapacity necessary to transmit, store, and activate these delivered fontfiles.

BRIEF SUMMARY

The following presents a simplified summary in order to provide a basicunderstanding of some aspects of the disclosure. The summary is not anextensive overview of the disclosure. It is neither intended to identifykey or critical elements of the disclosure nor to delineate the scope ofthe disclosure. The following summary merely presents some concepts ofthe disclosure in a simplified form as a prelude to the descriptionbelow.

Aspects of the disclosure relate to a method, system, and architecturefor a font service and a software development kit (SDK) to providedevelopers and the like with the means to design user-interfaces andcontent using a wide variety of font typefaces. In some embodiments, theSDK enables the use of one or more of the font typefaces in thedeveloper's application. For example, when an application is launched,the SDK (included in the code of the developer's application) maydownload a requested font file from a font service as needed andactivate the font in the software application such that user interfacesor other textual content within the application is rendered in therequested font.

According to another aspect, a subscription service may be provided atthe font service. The subscription service may comprise accountinformation or other data relating to permissions for one or more clientdevices to access one or more font files located in a font library. Insome embodiments, the subscription service may comprise informationregarding a licensing agreement between an application developer and thefont service. Accordingly, in some embodiments, subscription informationmay be referenced to determine permissions (or lack thereof) of a targetapplication before a font file is transferred to a client device.

According to yet another aspect, one or more font files may be optimizedfor an operating system in which the target application is operatingand/or a screen resolution of a display on a target client device.Optimizing a font file may comprise reducing the size of the font filein order to reduce bandwidth needed to transmit the font file, reducelocal storage capacity needed to store the font file, and/or reduce atime required to render textual content using the font file. In someembodiments, optimization may comprise removing font hinting, OpenTypefeatures, and/or other attributes of a font file which is not requiredby an operating system and/or display of the target client device.

BRIEF DESCRIPTION OF THE DRAWINGS

A more complete understanding of the present invention and theadvantages thereof may be acquired by referring to the followingdescription in consideration of the accompanying drawings, in which likereference numbers indicate like features, and wherein:

FIG. 1 illustrates an example computer system and environment in whichone or more aspects of the present disclosure may be practiced;

FIG. 2 is a schematic of a mobile device and font service according toone or more aspects of the present disclosure;

FIG. 3 is a flowchart depicting a method of launching an applicationutilizing one or more aspects of the present disclosure; and

FIG. 4 is a flowchart depicting a method of optimizing a font file to beused by the launched application of FIG. 3 according to one or moreaspects of the present disclosure.

DETAILED DESCRIPTION

Aspects of the disclosure relate to systems, apparatuses, methods, andcomputer-readable media for providing multiple fonts to a softwaredeveloper and the like to be ultimately used in user interfaces and/orother rendered textual content in applications operating on clientdevices. A font, as used herein, may refer to a collection of charactersin a typeface, and, in some embodiments, may refer to a set of allcharacters defined for that particular typeface. A font may be providedin a font file which is processed by an operating system and rendered inan application. The font file may further comprise font hinting (e.g.,instructing) which comprises mathematical instructions to an operatingsystem to adjust the display of an outline font so that it lines up witha rasterized grid. In some embodiments (e.g., embodiments where adisplay of a client device comprises low screen resolutions), fonthinting may be critical for producing clear, legible text. The font filemay further comprise OpenType features as will be readily understood bythose skilled in the art.

FIG. 1 illustrates a network environment in which font files may betransmitted and used to render text in user interfaces or other textualcontent in applications according to some aspects of the disclosure.Network 100 may be configured to provide communications between avariety of devices including client devices 103 and network servers 105.The communications may conform to one or more communication protocolsincluding Internet Protocol (IP), Hyper Text Transfer Protocol (HTTP),File Transfer Protocol (FTP), and the like. Devices 103 may includestationary devices such as personal computer (PC) 103 a as well asmobile communication devices such as personal data assistant (PDA) 103b, mobile phone 103 c, laptop computer 103 d, and tablet 103 e. Networkservers 105 may be configured to store and host various types ofinformation including web pages, music content, video content,applications, and the like. In one configuration, network server 105 amay be configured to host one or more font services.

According to one or more aspects, a font service and/or network server105 b may be configured to store font files. Font files may be createdaccording to a variety of formats and comprise a variety of instructions(e.g., font hinting) and attributes (e.g., OpenType features) as will bereadily understood by those skilled in the art. Accordingly, a singlefont file may be used across multiple platforms on multiple devices(e.g., client devices 103 a-103 e) and each device may use the providedfont hinting, OpenType features, and/or other attributes to renderclear, legible text in the target application.

Similarly, a client device 103 may comprise a plurality of system fontswhich may ultimately be used within applications to render textualcontent. These system fonts may be globally accessible on a clientdevice 103 such that any application operating on a client device 103may use one or more system fonts to render textual content. For example,a software developer or the like, when developing an application, mayinclude code to reference one or more of these system fonts whendisplaying textual content, and the corresponding application, whenlaunched, may access a font file on client device 103 comprising thecoded-for system font. In such an example, the textual content in theapplication will thus be rendered on a display in this system font.However, if a software developer or the like wishes to render textualcontent in a font other than one of the provided system fonts, she mayeither be required to provide a font file with the application, orrequire an end user to download or otherwise install an additional fontfile on client device 103. For example, software developers may wish torender textual content in a font other than one of the provided systemfonts, but if client device 103 does not have additional font filespreloaded, then the textual content may ultimately be rendered in one ofthe provided system fonts (e.g., a default font) or the client device103 may be required to, e.g., download additional font files beforerendering the textual content.

According to one or more aspects of the disclosure, a font service isprovided to allow a software developer or the like to use one or morefonts not provided as a default system font to display textual contentin an application. For example, in some embodiments a software developermay choose a font they wish to use when rendering textual content from adatabase comprising fonts that may not be preloaded on client devices103, and “rent” this font from a font service. In such embodiments,rather than requiring an end user to purchase and/or install numerousadditional font files on client device 103 in order to render textualcontent in a font other than a default system font, this font servicemay allow a developer to code for a desired font not included as asystem font which may then be used only by the specific application(e.g., rented by the application).

FIG. 2 is a schematic of a mobile device 201 (as one example of clientdevice 103) in communication with font service 203 (as one example of afont rental service) according to one or more aspects of the disclosure.In some embodiments, font service 203 may be a system and architecturethat provisions user accounts, provides privileged account informationto a software development kit (SDK) 211, hosts physical font files,optimizes fonts before font delivery, and provides privileged access tothe font files by SDK 211. Mobile device 201 may be any mobile devicewell known in the art and, in some embodiments, may be, e.g., PDA 103 b,mobile phone 103 c, laptop computer 103 d, or tablet 103 e. Further,mobile device 201 may be in communication with font service 203 usingany known method in the art (e.g., wireless, cellular, etc.) and, insome embodiments, may be in communication via network 100. Mobile device201 may comprise operating system 205, system fonts 207, one or moreapplications 209, and display 217. Application 209 may be any program,widget, browser, software, etc., whose code is stored on mobile device201 and, when executed by operating system 205, displayed on display217. In some embodiments, application 209 may comprise user interfacesand/or other textual content. When this textual content is ultimatelyrendered on display 217, the content may be displayed in one or moresystem fonts 207 as discussed herein. These system fonts 207 maycomprise one or more fonts stored in one or more font files in a memoryor other storage space on mobile device 201 and may be globallyavailable for use by any application. The number of system fonts 207available may thus be inherently limited due to, e.g., spaceconstraints, licensing restrictions, and/or other limitations of mobiledevice 201.

According to some embodiments of the disclosure, mobile device 201 mayfurther comprise SDK 211 contained within application 209 (e.g.,programmed within the code of application 209 by a software developer orthe like) which may be used to assist in renting additional fonts (e.g.,fonts in addition to the system fonts 207 and/or other fonts globallyavailable on mobile device 201). SDK 211 as used herein broadly refersto a collection of programming interfaces, examples, documentation, andthe like used to interface with font service 203 published and madeavailable to, e.g., third-party software developers.

Mobile device 201 may also comprise sandbox 215 and font storage 213used to store the rented fonts locally for use with application 209. Asused herein, sandbox 215 refers to a security mechanism used forseparating running applications, such as, e.g., application 209 fromother applications operating on mobile device 201. Sandbox 215 mayprovide a tightly controlled set of resources for guest programs to runin, such as scratch space on disk and memory. Sandbox 215 may not allowor may heavily restrict, e.g., network access, the ability to inspectthe host system, or the ability to read from input devices. Thus,sandbox 215 may be understood by those skilled in the art as a specificexample of virtualization.

In one or more aspects of the present invention, operating system 205operates application 209 and/or specific components of application 209in sandbox 215 and thus segregates application 209 in order to preventunauthorized access to one or more application 209 resources (e.g., inorder to prevent other applications from accessing the rented fontsstored in font storage 213). For example, fonts downloaded for use byapplication 209 may be stored in sandbox 215 (e.g., stored in fontstorage 213 provided in sandbox 215) so as to prevent access to therented font by other applications operating on the mobile device 201.Accordingly, each font acquired from the font service 203 may thus beonly available for the particular use for which it was rented (e.g., inthe depicted example, use in application 209) rather than being globallyavailable for use by any application on mobile device 201. Segregatingthe font storage 213 in this manner from the other applicationsoperating on mobile device 201 may be important for, e.g., fontlicensing and font license restrictions.

As illustrated in FIG. 2, SDK 211 is in communication with interface 219of font service 203. Interface 219 communicates with SDK 211 thusassisting with downloading of requested fonts as will be discussed morefully with reference to FIGS. 3 and 4. Font service 203 may additionallycomprise font library 221, optimization tools 223, and subscriptiondatabase 225. Font library 221 may comprise a plurality of font filesavailable to be rented and used in various applications (e.g.,application 209). Because font library 221 may be stored on, e.g., oneor more network servers 105, font library 221 may not be subjected tothe same space constraints, etc., as system fonts 207 stored on mobiledevice 201. Accordingly, font library 221 may contain many more fontfiles (and thus many more font options) than system fonts 207.

Font service 203 may comprise optimization tools 223. Optimization tools223 may optimize any font file from font library 221 before transmittingit to mobile device 201. This optimization may be performed in order to,e.g., reduce bandwidth required to transmit the font file, reduce thememory or other storage space required to store the received font filelocally on mobile device 201, and/or reduce the time required to rendercontent using the font file on mobile device 201.

Optimization tools 223 may reduce the size of the font file using anydesired method. In some embodiments, optimization tools 223 may removefont hinting not required and/or supported by the target application's209 operating system 205. As used herein, font hinting (also known asinstructing) refers to the use of mathematical instructions to adjustthe display of an outline font so that it lines up with a rasterizedgrid. For example, at low screen resolutions, font hinting is necessaryto produce a clear, legible text. Font files stored in font library 221may thus comprise font hinting (instructing), but the target clientdevice 103 may not require and/or support such font hinting. Bydetermining, e.g., an operating system 205 and/or screen resolution ofdisplay 217 used by the target client device 103 (e.g., mobile device201), optimization tools 223 may thus remove the unnecessary fonthinting and the like from the font file when it is not required and/orsupported and thus reduce, e.g., bandwidth required to transmit the fontfile, storage space (e.g., memory) required to store the font filelocally, and/or time necessary to render textual content on mobiledevice 201.

In other embodiments, optimization tools 223 may be used to, e.g.,remove OpenType features from the requested font file that may notultimately be used by the target client device's 103 operating system205. For example, some operating systems 205 may not support and/orutilize some or all OpenType features. In such embodiments, optimizationtools 223 may remove the unused OpenType features from the requestedfont file before it is transmitted to a client device 103 (e.g., mobiledevice 201). Thus, as with font hinting as presented above, optimizationtools 223 may thus reduce the size of the requested font file byremoving unused OpenType features in order to reduce, e.g., bandwidthrequired to transmit the font file, storage space (e.g., memory)required to store the font file locally, and/or time necessary to rendertextual content on the client device 103.

Font service 203 may further comprise subscription database 225.Subscription database 225 may comprise information regarding useraccounts, permissions, etc., and, in some embodiments, may comprise alist of which fonts a user is allowed access. For example, in someembodiments, a third-party software developer or the like may license aparticular font from font library 221 to be used in her developedapplication (e.g., application 209). Accordingly, subscription database225 may comprise information regarding the software developer's licenseagreement such that, when a client device 103 (e.g., mobile device 201)executes application 209 developed by the software developer,subscription database 225 may be referenced to determine if theapplication 209 has permission to use the requested font. Thus, in someembodiments, when the client device 103 (e.g., mobile device 201)executes application 209, SDK 211 may communicate with font service 203via interface 219, which may then provide any licensed font files and/orpermissions to use any licensed font files according to the termsprovided in subscription database 225. However, if the subscriptiondatabase 225 indicates the application 209 does not have permission toaccess the requested font file (e.g., the software developer has notestablished a subscription with font service 203 and/or has establisheda subscription that does not include the requested font), the fontservice 203 may deny access to the font file. In such embodiments, anytextual content may ultimately be rendered on display 217 using adefault system font 207 and/or an error message may be returned to auser indicating she does not have permission to access the requestedfont.

The interaction of mobile device 201 (or other client device 103) withfont service 203 will be more readily understood with reference to FIGS.3 and 4. FIG. 3 depicts one embodiment of high-level logic involved whena font file is downloaded and activated via, e.g., SDK 211. For example,at step 301 an application begins launching. The application may be anyprogram, widget, browser, software, etc., and may be launched on, e.g.,any of client devices 103 a-103 e. In some embodiments, the applicationlaunched at step 301 may be application 209 launched on mobile device201. As discussed, the launched application 209 may comprise SDK 211 toassist in interactions with font service 203 in order to, e.g., torequest a font to be used within the displayed application 209. At step303, SDK 211 may determine if the requested font is stored withinsandbox 215 corresponding to the launched application 209. For example,in some embodiments, once a font is delivered from font service 203, itmay be stored locally in sandbox 215 such that it may be readilyaccessed during subsequent uses of application 209 (but not by otherapplications operating on, e.g., mobile device 201). Accordingly, atstep 303, if the font has been previously accessed (e.g., downloaded)and stored in sandbox 215, SDK 211 may simply access the font locally atstep 303 and move to step 313 as will be more fully discussed.

However, in embodiments where the requested font has not been previouslystored in sandbox 215 (e.g., if this is the first time application 209has been launched and thus SDK 211 has not previously requested the fontand/or SDK 211 has been denied permission to store the font locally,etc.) then the method proceeds to step 305. At step 305, SDK 211establishes a connection with font service 203. As discussed, theconnection between SDK 211 and font service 203 may be achieved by anyknown method without departing from the scope of this disclosure. Solelyby way of example, in embodiments where the launched application is,e.g., application 209 operating on mobile device 201, SDK 211 mayestablish a connection with the font service 203 via a wireless internetconnection and/or a cellular data transmission connection. Further, andas illustrated in FIG. 2, font service 203 may comprise interface 219for establishing a connection with SDK 211. Once the connection to thefont service 203 is established at step 305, SDK 211 may request one ormore font files from font service 203. For example, SDK 211 may requesta font file associated with a font which a third-party softwaredeveloper or the like has programmed to be used when rendering textualcontent in application 209.

At step 307, SDK 211 (via, e.g., interface 219) and/or font service 203may access a customer's subscription by, e.g., referencing subscriptiondatabase 225. Again, subscription database 225 may comprise informationregarding one or more user accounts and/or permissions for accessing oneor more fonts stored within font library 221. In some embodiments,subscription database 225 may comprise information regarding, e.g., athird-party developer's subscription and/or permissions for accessingone or more font files. At step 309, SDK 211 and/or font service 203determines if the user has access to the requested font. For example, ifa third-party developer has, e.g., licensed use of a particular font foruse by any client device 103 executing her application 209, then SDK 211and/or font service 203 may determine at step 309 (by referencing, e.g.,subscription database 225) that the user does have access to therequested font. However, if SDK 211 and/or font service 203 determinesthe user does not have access to the requested font (e.g., a third-partydeveloper does not have a subscription agreement encompassing therequested font), the method proceeds to the step 311.

At step 311, a system font 207 (e.g., a default font) is used in theplace of the requested font. Thus, if the client device 103 (e.g.,mobile device 201) is ultimately denied access to the requested font,any textual content rendered, e.g., on display 217 in application 209may be rendered in one or more default system fonts 207. In someembodiments, falling back to this default system font 207 may beaccomplished by, e.g., calling operating system 205 applicationprogramming interface (API) methods. As used herein, API may refer to asource-code based specification intended to be used as an interface bysoftware components to communicate with each other. The API may includespecifications for routines, data structures, object classes, variables,and the like. In other embodiments, rather than accessing a system font207 to display the rendered content, application 209 may return, e.g.,an error message or other prompt indicating that the client device 103does not have access to the requested font.

However, if at step 309 SDK 211 and/or font service 203 determines theuser does have access to the requested font (e.g., the requested font isincluded in the third-party developer's subscription), then the methodmay proceed to FIG. 4 (as indicated in FIG. 3 by the circled “A”). FIG.4 is a flowchart of a method according to some aspects of the disclosureused to deliver the requested font from, e.g., font service 203 tomobile device 201. At step 401, SDK 211 provides information to fontservice 203. In some embodiments, the information provided at step 401from SDK 211 to font service 203 may comprise, e.g., platforminformation, such as a version of operating system 205 used to run thetarget application 209 and/or a screen resolution of display 217 used todisplay the target application 209.

At step 403, SDK 211 and/or font service 203 may determine if therequested font has been previously optimized. As discussed, optimizationof a font may comprise reducing a size of a font file in order toreduce, e.g., bandwidth required to transmit the font file, storagespace (e.g., memory) required to store the font file, and/or timerequired to render the font on display 217. In some embodiments,optimization may comprise stripping a font file of, e.g., font hintingand other features that are not required by the operating system 205 ofthe client device 103 (e.g., mobile device 201) running the targetapplication 209. In other embodiments, optimization may compriseremoving, e.g., OpenType features that are not supported and/or requiredby the operating system 205 of the client device 103 (e.g., mobiledevice 201) running the target application 209. In some embodiments,font service 203 may store font files in, e.g., font library 221 thathave been previously optimized for, e.g., a given operating system,screen resolution, etc. Thus, at step 403, SDK 211 and/or font service203 may determine if the requested font file has been previouslyoptimized for the target operating system 205 and/or display 217. If so,the font service 203 may serve the optimized font file at step 407 (tobe discussed more fully) without further action. However, if the fontfile has not been previously optimized (e.g., has not been optimized foroperating system 205 and/or display 217) then the method proceeds tostep 405.

At step 405, SDK 211 and/or font service 203 performs real-timeoptimization of the requested font file. Specifically, the size of therequested font file may be reduced by, e.g., stripping the font file offont hinting, OpenType features, and/or other features not required bythe target operating system 205 and/or display 217 as discussed herein.In some embodiments, step 405 may be performed by, e.g., referencingoptimization tools 223 provided in font service 203. Once any necessaryreal-time optimization has been performed at step 405, the methodproceeds to step 407 where the font service 203 may serve the optimizedfont file to, e.g., SDK 211 for use in rendering textual content of thetarget application 209.

In some embodiments, SDK 211 may store the received optimized font filelocally in, e.g., font storage 213 in sandbox 215 at step 409. This maybe accomplished by, e.g., calling operating system 205 API methods. Insuch embodiments, when application 209 is launched at a later time, therequested font may be available locally in, e.g., font storage 213 ofsandbox 215 (but not available to, e.g., other applications operating onmobile device 201) in order to reduce start-up time and/or the timerequired to render textual content, etc.

Following step 409 (and returning to FIG. 3 as indicated by the circled“B”), SDK 211 activates the font in the target application 209 at step313. As used herein, activation may refer to an act of changing thestate of a font such that operating system 205 may discover theexistence of the requested font and may use the font as if the font wereinstalled in operating system 205 itself. In the depicted embodiment,activating the received font by SDK 211 at step 313 enables the use ofthe received font only within the target application 209 (as compare toa globally activated font, such as system font 207, which is availableto all applications running on the device). In some embodiments, fontactivation at step 313 may comprise just-in-time font activation. Insuch embodiments, the font activation may occur as needed at the exact(or nearly exact) moment in the time the target application 209 needs torender the textual content.

At step 315, the target application 209 finishes launching. For example,in some embodiments, application 209 is displayed on display 217 withits user interfaces and/or other textual content rendered in thereceived font typeface from font service 203.

The methods and features recited herein may further be implementedthrough any number of computer readable media that are able to storecomputer readable instructions. Examples of computer readable media thatmay be used include RAM, ROM, EEPROM, flash memory or other memorytechnology, CD-ROM, DVD or other optical disk storage, magneticcassettes, magnetic tape, magnetic storage, and the like.

Additionally or alternatively, in at least some embodiments, the methodsand features recited herein may be implemented through one or moreintegrated circuits (ICs). An integrated circuit may, for example, be amicroprocessor that accesses programming instructions or other datastored in a read only memory (ROM). In some such embodiments, the ROMstores programming instructions that cause the IC to perform operationsaccording to one or more of the methods described herein. In at leastsome other embodiments, one or more of the methods described herein arehardwired into an IC. In other words, the IC is in such cases anapplication specific integrated circuit (ASIC) having gates and otherlogic dedicated to the calculations and other operations describedherein. In still other embodiments, the IC may perform some operationsbased on execution of programming instructions read from ROM or RAM,with other operations hardwired into gates and other logic of IC.Further, the IC may output image data to a display buffer.

As described herein, the provided systems, apparatuses, methods, andcomputer-readable media may provide many advantages to target users,third-party software developers, and the like. For example, the providedsystems, apparatuses, methods, and computer-readable media may provide awide variety of high-quality fonts to choose from when designing andcoding the user-interface and textual content of a software application209. Further, in some embodiments, SDK 211 handles details for thethird-party developer such as downloading fonts on a background threadto allow for a main thread to remain responsive, storing the fonts inthe application's 209 sandbox 215, and activating the fonts.Additionally, in some embodiments, the fonts are optimized for theclient device 103 where SDK 211 is supported such that the bandwidthrequired to download the font may be reduced, the amount of storagerequired to store the font on the client device 103 may be reduced,and/or the time required to render textual content in application 209may be reduced. According to some aspects, SDK 211 may handledownloading the font(s) the first time application 209 is run which mayreduce the size of the initial download of application 209. This may beparticularly beneficial when client device 103 is, e.g., a mobile device201, as loading resources on first execution (as opposed to packagingthem in application 209) may be a recommended best practice for mobiledevice 201 applications 209. The provided systems, apparatuses, methods,and computer-readable media may provide many other advantages to targetusers, third-party software developers, and the like as will be apparentto one skilled in the art given the benefit of this disclosure.

Although specific examples of carrying out various features have beendescribed, those skilled in the art will appreciate that there arenumerous variations and permutations of the above-described systems andmethods that are contained within the spirit and scope of the disclosureas set forth in the appended claims. Additionally, numerous otherembodiments, modifications, and variations within the scope and spiritof the appended claims will occur to persons of ordinary skill in theart from a review of this disclosure.

We claim:
 1. One or more computer readable media storing computerreadable instructions that, when executed by a processor, cause anapparatus to: receive a first request from an application operating inan operating system, wherein the first request is a request for a firstfont to be used in the application; determine if a first font filecomprising the first font is located in a secured storage spacecorresponding to the application; in response to determining the firstfont file is not located in the secured storage space corresponding tothe application: establish a connection to a font service; request thefirst font file from the font service; and receive the first font filefrom the font service; and activate the first font in the application.2. The one or more computer readable media of claim 1, storing furtherinstructions that, when executed by the processor, cause the apparatusto: store the first font file in the secured storage space for futureaccess by the application.
 3. The one or more computer readable media ofclaim 2, storing further instructions that, when executed by theprocessor, cause the apparatus to: receive a second request from theapplication operating in the operating system, wherein the secondrequest is a request for the first font to be used in the application attime later than a time of the first request; and retrieve the first fontfile from the secured storage space.
 4. The one or more computerreadable media of claim 1, wherein the first font file is optimized byremoving one of: font hinting and OpenType features not used by theoperating system.
 5. The one or more computer readable media of claim 1,wherein activating the first font in the application comprises renderingtextual content of the application in the first font.
 6. The one or morecomputer readable media of claim 1, wherein the apparatus is a mobiledevice, and wherein the connection to the font service is establishedvia one of: a wireless internet connection and a cellular dataconnection.
 7. The one or more computer readable media of claim 1,wherein the application comprises a software development kit.
 8. The oneor more computer readable media of claim 7, wherein the connection tothe font service is established between the software development kit andthe font service.
 9. The one or more computer readable media of claim 8,wherein the receiving the first font file from the font service isfurther in response to determining, by the software development kit, thefirst font file is included in a subscription agreement of a developerof the application.
 10. One or more computer readable media storingcomputer readable instructions that, when executed by a processor, causean apparatus to: accept a connection from a client device; receive afirst request for a first font file to be used in an application on theclient device; retrieve a subscription corresponding to the application;determine if the subscription corresponding to the application comprisesaccess to the first font file; and in response to determining thesubscription corresponding to the application does comprise access tothe first font file: determine an operating system used by the clientdevice; optimize the first font file for the operating system used bythe client device; and transmit the first font file to the clientdevice.
 11. The one or more computer readable media of claim 10, whereinoptimizing the first font file comprises reducing the size of the firstfont file.
 12. The one or more computer readable media of claim 11,wherein optimizing the first font file further comprises removing oneof: font hinting and OpenType features file not used by the operatingsystem used by the client device.
 13. The one or more computer readablemedia of claim 11, wherein optimizing the first font file furthercomprises retrieving, from a database, an optimized version of the firstfont file corresponding to the operating system used by the clientdevice.
 14. The one or more computer readable media of claim 10, whereindetermining if the subscription corresponding to the applicationcomprises access to the first font file comprises determining if thefirst font is included in a subscription agreement of a developer of theapplication.
 15. The one or more computer readable media of claim 10,wherein the client device is a mobile device, and wherein the connectionfrom the client device is accepted via one of: a wireless internetconnection and a cellular data connection.
 16. A mobile devicecomprising: at least one processor; and memory operatively coupled tothe at least one processor and storing computer readable instructionsthat, when executed by the at least one processor, cause the mobiledevice to: receive a first request from an application operating in anoperating system of the mobile device, wherein the first request is fora first font to be used in the application; determine if a first fontfile comprising the first font is located in a secured storage spacecorresponding to the application; in response to determining the firstfont file is not located in the secured storage space: establish aconnection between a software development kit associated with theapplication and a font service; request the first font file from thefont service; and receive, by the software development kit, the firstfont file from the font service, wherein the received first font file isoptimized for the operating system; store the first font file in thesecured storage space; and activate the first font in the application.17. The mobile device of claim 16, wherein the memory stores furthercomputer readable instructions that, when executed by the at least oneprocessor, cause the mobile device to: receive a second request from theapplication operating in the operating system, wherein the secondrequest is a request for the first font to be used in the application attime later than a time of the first request; and in response toreceiving the second request, retrieve the first font file from thesecured storage space.
 18. The mobile device of claim 16, wherein thefirst font file is optimized by removing one of: font hinting andOpenType features not used by the operating system.
 19. The mobiledevice of claim 16, wherein activating the font in the applicationcomprises rendering textual content of the application in the firstfont.
 20. The mobile device of claim 16, wherein the receiving the firstfont file from the font service is further in response to determining,by the software development kit, the first font file is included in asubscription agreement of a developer of the application.